Low power and Lossy Networks (LLNs), e.g., sensor networks, have a myriad of applications, such as Smart Grid and Smart Cities. Various challenges are presented with LLNs, such as lossy links, low bandwidth, battery operation, low memory and/or processing capability, etc. One example routing solution to LLN challenges is a protocol called Routing Protocol for LLNs or “RPL,” which is a distance vector routing protocol that builds a Destination Oriented Directed Acyclic Graph (DODAG, or simply DAG) in addition to a set of features to bound the control traffic, support local (and slow) repair, etc. The RPL architecture provides a flexible method by which each node performs DODAG discovery, construction, and maintenance.
Since link failures are relatively common in LLNs, for storing mode, RPL specifies a backtracking mechanism that allows routers to try/explore alternate paths when a link on the preferred path fails. This example backtracking mechanism logically follows a depth-first search along the DAG by forwarding the data packet itself. As the data packet finds downward routes that are broken, the link is marked down, the downward routing entry is invalidated, and the router attempts a different next-hop route in the downward direction. If no more downward next-hops are available, the router returns the packet upwards to its DAG parent, which is the backtracking.
For non-storing mode, RPL does not currently specify a similar mechanism to apply backtracking to source-routed messages. As such, when source-routing is employed, rerouting must generally occur at the source of the message (by default).